//
//  NSString+DFDate.h
//  FrameWork
//
//  Created by 王*风 on ****/5/9.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSString (DFDate)

/** 根据时间格式获取当前时间*/
+(NSString *)df_getCurrentDateDateFormat:(NSString*)dateFormat;

/** 获取当前时间戳(毫秒)*/
+(NSString*)df_getCurrentTimestamp;

/** 时间戳转化为自定义的时间*/
+(NSString*)df_timeStampBecomeDate:(NSString*)timestamp withFormatterStyle:(NSString*)formatterStr;

/** 将自定义的时间转化为时间戳*/
+(NSInteger)df_dateBecomeTimeStamp:(NSString *)formatTime andFormatter:(NSString *)format;

/** 传入两个时间和格式，获取时间差，单位秒 */
+(NSInteger)df_duringTimeWithBeginTime:(NSString *)beginTime endTime:(NSString *)endTime andFormatter:(NSString *)format;

/** 传入今天的时间，返回明天的时间*/
+(NSString *)df_getTodayToTomorrowDay:(NSDate *)aDate;

/** 获取当前周的周一和周日的时间*/
+(NSString *)df_getMondayAndSunday;

/** 获取当前月的上一个月份*/
+ (NSString*)df_getBeforeMonthTime;

/** 将NSString类型转化为NSdate类型*/
+(NSDate*)df_nsstringChangeDateFormat:(NSString*)dateFormat datestring:(NSString*)datestring;

/** 根据年份来获取具体的生肖年份(阴历)*/
+(NSString *)df_getChineseYearWithDate:(NSDate *)date;

/** 获取农历(阴历)的月,日*/
+(NSString *)df_getChineseCalendarWithDate:(NSDate *)date;

/** 获取今天是周几*/
+(NSString *)df_getCurrentWeekDate:(NSDate *)date;

/** 秒数转化为时间(时,分,秒)*/
+(NSString*)df_secondConversionHourAndMinutes:(NSInteger)totalSeconds;

/** 本年或者本月的第几周 第一个参数传YES 得到本年的第几周 NO为本月的第几周。*/
+(NSString *)df_getCurrentYearInWeekOrMouth:(BOOL)inYear WithDate:(NSDate *)date;

/** 获取今天、明天、后天的日期*/
+(NSArray *)df_timeForTheRecentDate;

/**
  * 仿照微信中的消息时间显示逻辑，将时间戳（单位：毫秒）转换为友好的显示格式.
  * 1）7天之内的日期显示逻辑是：今天、昨天(-1d)、前天(-2d)、星期？（只显示总计7天之内的星期数，即<=-4d）；
  * 2）7天之外（即>7天）的逻辑：直接显示完整日期时间。
  * @param dt 日期时间对象（本次被判断对象）
  * @param includeTime YES表示输出的格式里一定会包含“时间:分钟”，否则不包含（参考微信，不包含时分的情况，用于首页“消息”中显示时）
  * @return 输出格式形如：“刚刚”、“10:30”、“昨天 12:04”、“前天 20:51”、“星期二”、“2019/2/21 12:09”等形式
  * @since 1.3
  */
+ (NSString*)df_getWeChatTimeString:(NSDate*)dt mustIncludeTime:(BOOL)includeTime;

@end

NS_ASSUME_NONNULL_END
